home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Bits and Bytes Volume 10, No. 03 (1988-10)(Apple Computing Enjoyment Society)(Side B).zip / Bits and Bytes Volume 10, No. 03 (1988-10)(Apple Computing Enjoyment Society)(Side B).po / DISK.LABELER.bas < prev    next >
BASIC Source File  |  1996-12-24  |  27KB  |  560 lines

  1. 5  NOTRACE 
  2. 10  REM ******************************
  3. 20  REM *     CLIFF'S LABEL MAKER    *
  4. 30  REM *        REVISION 4.5        *
  5. 40  REM * TRI-CITY APPLE USERS GROUP *
  6. 50  REM *          1/16/88           *
  7. 60  REM *       PRODOS VERSION       *
  8. 70  REM ******************************
  9. 80 VE$ = "4.5"
  10. 85  PRINT  CHR$(27) CHR$(17)
  11. 86  PRINT  CHR$(12) CHR$(21)
  12. 100 SD$ = ",S5,D1": REM SD$=DEFAULT DRIVE
  13. 110 PSLOT = 1: REM PSLOT = PRINTER SLOT
  14. 120 FI% = 105: REM FI%=MAX FILE SIZE
  15. 130 COL = 80: REM COL = 80 COL DISPLAY
  16. 140 N% = 6: REM N% = NO. OF COLUMNS ON EDIT SCREEN
  17. 150 LP = 1: REM LP=1 FOR 3-INCH SQ LABELS; LP=2 FOR 4 X 1.5-INCH LABELS
  18. 160 PR = 2: REM PR=1 FOR EPSON MX W/GRAFTRAX; PR=2 FOR IMAGEWRITER II 
  19. 170  GOSUB 6920: GOSUB 7000: REM  SET UP LABEL AND PRINTER CONSTANTS
  20. 180 J = 0:JF = 0:TF$ = "":NF$ = "":PF$ = "":JB = 0:TB$ = "":NB$ = "":PB$ = "":BL$ = "                    "
  21. 190 D$ =  CHR$(4):LIMIT = 140
  22. 200  DIM R$(LI),RF$(LI),RB$(LI): DIM DIR$(100),CET$(105),B(LI),RE(LI)
  23. 210  DEF  FN A(DL) =  INT((DL/N% - INT(DL/N%)) *N% +.05)
  24. 220  TEXT : HOME :PTR = 768
  25. 230  READ A: IF A > -1  THEN  POKE PTR,A:PTR = PTR +1: GOTO 230
  26. 240  DATA 32,190,222,32,227,223,162,0,32,117,253,160,0,138,145,131,200,169,0,145,131,200,169,2,145,131,32,57,213,96
  27. 250  DATA -1
  28. 260  REM ** READ AVAILABLE PRINTERS - DATA IN LINE 7500 **
  29. 270 I = 1
  30. 280  READ PR$(I): IF PR$(I) < >"END"  THEN I = I +1: GOTO 280
  31. 290 NP = I -1
  32. 300  GOTO 390
  33. 310  REM ** TEST FOR U/C OR L/C **
  34. 320  IF  ASC(Q$) >90  THEN Q$ =  CHR$( ASC(Q$) -32)
  35. 330  RETURN 
  36. 340  REM *** HEADING ***
  37. 350  TEXT : HOME : INVERSE 
  38. 360  PRINT "///////////////////////////////////////": NORMAL 
  39. 370  PRINT "  C L I F F'S   L A B E L   M A K E R": INVERSE 
  40. 380  PRINT "/////////////// VERS. ";VE$;" /////////////": NORMAL : PRINT : POKE 34,4: RETURN 
  41. 390  REM ** MAIN MENU **
  42. 400  GOSUB 350
  43. 410  VTAB 8: PRINT "CATALOG OPERATIONS": PRINT 
  44. 420  PRINT "   F>RONT SIDE OF DISK"
  45. 430  PRINT "   B>ACK SIDE OF DISK"
  46. 440  PRINT "   P>RINT COMBINED FRONT AND BACK SIDES"
  47. 450  PRINT "   D>ISPLAY/MODIFY PROGRAM CONSTANTS"
  48. 455  PRINT "   H>OW TO PRINT LABELS"
  49. 460  PRINT "   Q>UIT"
  50. 470  PRINT : PRINT "       ENTER CHOICE: ";: GET Q$: PRINT Q$: GOSUB 320
  51. 480 CH$ = "FBPDHQ"
  52. 490  FOR I = 1 TO  LEN(CH$)
  53. 500  IF Q$ =  MID$ (CH$,I,1)  THEN 520
  54. 510  NEXT I: GOTO 390
  55. 511  TEXT : HOME : VTAB 4
  56. 512  PRINT : INVERSE : HTAB 9: PRINT "STEPS TO PRINT A LABEL": PRINT : NORMAL 
  57. 514  PRINT "--->1.SELECT F>FRONTSIDE..............."
  58. 516  PRINT "--->2.SELECT R>EAD-RETURNS for defaults"
  59. 517  PRINT "--->3.Then select P>RINT Press RETURN"
  60. 518  PRINT : PRINT "      PRESS RETURN TO CONTINUE": CALL  -678: GOTO 300
  61. 520  ON I GOSUB 600,700,5710,900,511,800
  62. 522  IF LP = 1  AND I = 2  THEN 400
  63. 525  IF I = 1  OR I = 2  THEN  GOTO 1810
  64. 530  PRINT  CHR$(27) CHR$(17)
  65. 540  PRINT  CHR$(26)"0"; CHR$(26)"1": REM   CLEARS VIDEX 80-COL SCREEN
  66. 550  GOTO 390
  67. 600  REM *** FRONT SIDE OF DISK CONTROL ***
  68. 610  FOR K = 1 TO JF:R$(K) = RF$(K): NEXT K
  69. 620 T$ = TF$:NP$ = PF$:J = JF:N$ = NF$:CT$ = "FRONT": RETURN 
  70. 630  FOR K = 1 TO J:RF$(K) = R$(K): NEXT K
  71. 640 TF$ = T$:PF$ = NP$:JF = J:NF$ = N$:CT$ = "FRONT"
  72. 650  RETURN 
  73. 700  REM *** BACK SIDE OF DISK CONTROL ***
  74. 710  IF LP = 2  THEN 740
  75. 720  VTAB 22: PRINT "ONLY FRONT SIDE OPERATIONAL FOR 3.5-INCHDISK DRIVES.  HIT ANY KEY TO CONTINUE:";: GET Q$: PRINT Q$
  76. 730  RETURN 
  77. 740  FOR K = 1 TO JB:R$(K) = RB$(K): NEXT K
  78. 750 T$ = TB$:NP$ = PB$:J = JB:N$ = NB$:CT$ = "BACK": RETURN 
  79. 760  FOR K = 1 TO J:RB$(K) = R$(K): NEXT K
  80. 770 TB$ = T$:PB$ = NP$:JB = J:NB$ = N$:CT$ = "BACK"
  81. 780  RETURN 
  82. 800  REM **** ROUTINE TO QUIT ****
  83. 810  HOME : HTAB 8: PRINT "ARE YOU SURE YOU WANT TO QUIT? ";: GET Q$: PRINT Q$
  84. 820  IF Q$ = "Y"  OR Q$ = "y"  THEN  HOME : PRINT D$"BYE"
  85. 830  RETURN 
  86. 900  REM *** PROGRAM DEFAULT VALUES ***
  87. 910  TEXT : HOME 
  88. 920  IF PSLOT = 3  THEN PR$ = "SCREEN"
  89. 930  VTAB 1: PRINT "PROGRAM MAKES LABELS FOR DISK CATALOGS"
  90. 940  VTAB 3: HTAB 1: PRINT "MODIFIABLE CONSTANTS ARE: "
  91. 950  PRINT : HTAB 3: PRINT "A> SCREEN FORMAT IS ";COL;" COLUMNS"
  92. 960  PRINT : HTAB 3: PRINT "B> CATALOG FILE NAMES IN ";N%;" COLUMNS"
  93. 970  HTAB 6: PRINT "MAX CAT LGTH TO USE IS ";FI%;" FILES"
  94. 980  PRINT : HTAB 3: PRINT "C> OUTPUT DEVICE SLOT IS ";: INVERSE : PRINT PSLOT: NORMAL :
  95. 990  PRINT : HTAB 3: PRINT "D> PRINTER SELECTION "
  96. 1000  HTAB 6: PRINT "DEFLT PRNTR IS ";: INVERSE : PRINT PR$: NORMAL :
  97. 1010  PRINT : HTAB 3: PRINT "E> LABEL SIZE SELECTION"
  98. 1020  HTAB 6: PRINT "DEFLT SIZE IS ";: INVERSE : PRINT LABEL$: NORMAL :
  99. 1030  PRINT : HTAB 3: PRINT "F> DEFAULT DISK DRIVE SELECTION"
  100. 1040  HTAB 6: PRINT "DEFLT DRIVE IS ";: INVERSE : PRINT SD$: NORMAL :
  101. 1050  VTAB 22: HTAB 1: PRINT "MAKE CHOICE: <RTN TO CONT> ";: GET Q$: PRINT Q$: GOSUB 320
  102. 1060 CH$ = "ABCDEF"
  103. 1070  FOR I = 1 TO  LEN(CH$): IF  MID$ (CH$,I,1) = Q$  THEN 1090
  104. 1080  NEXT : GOTO 1110
  105. 1090  ON I GOSUB 1130,1150,1180,1300,6910,1500
  106. 1100  GOTO 910
  107. 1110  IF Q$ =  CHR$(13)  THEN  RETURN 
  108. 1120  GOTO 1050
  109. 1130  IF COL = 40  THEN COL = 80:N% = 6:FI% = 57 +19 *(N% = 4) +37 *(N% = 5) +48 *(N% = 6): RETURN 
  110. 1140  IF COL = 80  THEN COL = 40:FI% = 57:N% = 3: RETURN 
  111. 1150  VTAB 22: CALL  -958: PRINT "ENTER NO. OF COLUMNS (3-6): ";: GET Q$: PRINT Q$: IF  ASC(Q$) <51  OR  ASC(Q$) >54  THEN 1150
  112. 1160 N% =  VAL(Q$):FI% = 57 +19 *(N% = 4) +37 *(N% = 5) +48 *(N% = 6): IF COL = 40  THEN N% = 3:FI% = 57
  113. 1170  RETURN 
  114. 1180  VTAB 22: CALL  -958: PRINT "ENTER SLOT # OF OUTPUT DEVICE, PRINTER  OR SCREEN (1-3): ";: GET Q$: PRINT Q$: IF  ASC(Q$) <48  OR  ASC(Q$) >51  THEN  GOTO 1180
  115. 1190 PSLOT =  VAL(Q$)
  116. 1200  IF PSLOT = 3  THEN PR$ = "SCREEN"
  117. 1210  IF PSLOT = 1  THEN  GOSUB 6920
  118. 1220  RETURN 
  119. 1248  PRINT "  " + LEFT$( LEFT$(N$ +"      ",6) +T$,TL): PRINT : IF PSLOT = 3  THEN 12500
  120. 1300  REM  ** CHANGE PRINTERS **
  121. 1310  IF PSLOT = 3  THEN  RETURN 
  122. 1320  HOME : VTAB 4: HTAB 3: PRINT "PRINTERS CURRENTLY SUPPORTED:": PRINT 
  123. 1330  FOR I = 1 TO NP: HTAB 5: PRINT  CHR$(64 +I)"> "PR$(I): NEXT 
  124. 1340  VTAB 22: CALL  -958: HTAB 1: PRINT "CHOOSE PRINTER <RTN TO ACCEPT> ";: GET QP$: PRINT QP$
  125. 1350 CH$ = "ABCDE"
  126. 1360  FOR I = 1 TO NP: IF  MID$ (CH$,I,1) = QP$  THEN 1380
  127. 1370  NEXT : GOTO 1390
  128. 1380  ON I GOTO 8010,8210,8410,8610,8810
  129. 1390  IF QP$ =  CHR$(13)  THEN 1410
  130. 1400  GOTO 1320
  131. 1410  RETURN 
  132. 1500  REM *** CHANGE DEFAULT DISK DRIVE ***
  133. 1510  HOME : VTAB 2: PRINT "DEFAULT SLOT AND DRIVE IS ";: INVERSE : PRINT SD$;: NORMAL :
  134. 1520  PRINT : VTAB 4: PRINT "ENTER CHOICE OF ENTER ',S#,D#'": PRINT 
  135. 1530  HTAB 3: PRINT "A> SLOT 6, DRIVE 1": PRINT 
  136. 1540  HTAB 3: PRINT "B> SLOT 6, DRIVE 2": PRINT 
  137. 1550  HTAB 3: PRINT "C> SLOT 5, DRIVE 1": PRINT 
  138. 1560  HTAB 3: PRINT "D> SLOT 5, DRIVE 2": PRINT 
  139. 1570  HTAB 3: PRINT "E> OTHER": PRINT 
  140. 1580  VTAB 22: CALL  -958: HTAB 1: PRINT "CHOOSE DEFAULT DRIVE <RTN TO ACCEPT> ";: GET Q$: PRINT Q$: GOSUB 320
  141. 1590 CH$ = "ABCDE"
  142. 1600  FOR I = 1 TO 5: IF  MID$ (CH$,I,1) = Q$  THEN 1620
  143. 1610  NEXT : IF Q$ < > CHR$(13)  THEN 1520
  144. 1620  ON I GOSUB 1640,1650,1660,1670,1680
  145. 1630  RETURN 
  146. 1640 SD$ = ",S6,D1": RETURN 
  147. 1650 SD$ = ",S6,D2": RETURN 
  148. 1660 SD$ = ",S5,D1": RETURN 
  149. 1670 SD$ = ",S5,D2": RETURN 
  150. 1680  VTAB 22: CALL  -958: PRINT "ENTER YOUR CHOICE: ";: CALL 768,Q$:Q$ = Q$ +""
  151. 1690  IF Q$ < >""  THEN SD$ = Q$: RETURN 
  152. 1700  POP : GOTO 1500
  153. 1800  REM ***  DISK OPERATIONS MENU  ***
  154. 1810  GOSUB 350: PRINT  LEFT$(N$ +"      ",6) + LEFT$(T$,25);
  155. 1820  HTAB 1: VTAB 8:DL = 0:VC = 4:HC = 1
  156. 1830  INVERSE : PRINT CT$;: NORMAL : PRINT " SIDE OF DISK: DEFLT DISK IS ";: INVERSE : PRINT SD$: NORMAL : PRINT 
  157. 1840  VTAB 10: PRINT "   V>IEW DISK CATALOG"
  158. 1850  PRINT "   T>ITLE OF DISK"
  159. 1860  PRINT "   R>EAD DISK CATALOG"
  160. 1865  PRINT "   L>IST CATALOG TO ";: INVERSE : PRINT PR$: NORMAL 
  161. 1870  PRINT "   D>ISPLAY / CHANGE DEFAULT VALUES"
  162. 1880  PRINT "   S>ORT CATALOG"
  163. 1890  PRINT "   E>DIT/ADD/DELETE"
  164. 1900  PRINT "   P>RINT CATALOG TO ";: INVERSE : PRINT PR$: NORMAL 
  165. 1910  PRINT "    IN SLOT ";PSLOT;" USING ";: INVERSE : PRINT LABEL$: NORMAL :
  166. 1920  PRINT "   C>LEAR MEMORY    
  167. 1922  IF CT$ = "FRONT"  THEN  PRINT "   B>ACK SIDE OF DISK"
  168. 1924  IF CT$ = "BACK"  THEN  PRINT "   F>RONT SIDE OF DISK"
  169. 1930  PRINT "   M>AIN MENU"
  170. 1940  PRINT : PRINT "      ENTER CHOICE: ";: GET Q$: PRINT Q$: GOSUB 320
  171. 1950 CH$ = "VTRLDSEPCFBM"
  172. 1960  FOR I = 1 TO  LEN(CH$)
  173. 1970  IF Q$ =  MID$ (CH$,I,1)  THEN 2000
  174. 1980  NEXT I
  175. 1990  GOTO 1810
  176. 2000  ON I GOSUB 2400,2600,3000,12000,900,3800,4700,5200,2060,610,710,2050
  177. 2010  PRINT  CHR$(12) CHR$(21)
  178. 2020  PRINT  CHR$(27) CHR$(17)
  179. 2030  PRINT  CHR$(26)"0"; CHR$(26)"1": REM CLEARS VIDEX 80-COL SCREEN
  180. 2040  GOTO 1810
  181. 2050  POP : GOTO 390
  182. 2060  REM ****** CLEAR VARIABLES ******
  183. 2070  IF CT$ = "FRONT"  THEN  FOR I = 1 TO JF:RF$(I) = "":R$(I) = "": NEXT :J = 1:N$ = "":NF$ = "":T$ = "":TF$ = "":NP$ = "":PF$ = ""
  184. 2080  IF CT$ = "BACK"  THEN  FOR I = 1 TO JB:RB$(I) = "":R$(I) = "": NEXT :J = 1:N$ = "":NB$ = "":T$ = "":TB$ = "":NP$ = "":PB$ = ""
  185. 2090  RETURN 
  186. 2400  REM ****** VIEW DISK CATALOG ******
  187. 2410  TEXT : HOME 
  188. 2420  ONERR  GOTO 2490
  189. 2430  VTAB 1: PRINT "INSERT DISK TO BE CATALOGED AND HIT ANY KEY.....";: GET Q$: PRINT Q$
  190. 2440  PRINT "DEFAULT DRIVE IS '";: INVERSE : PRINT SD$;: NORMAL : PRINT "';               HIT RETURN TO ACCEPT, OR ENTER NEW      DRIVE OR PATHNAME: ";: CALL 768,NP$:NP$ = NP$ +""
  191. 2450  IF NP$ < >""  THEN SD$ = NP$
  192. 2460  PRINT  CHR$(4)"CAT" +SD$
  193. 2470  PRINT : PRINT "HIT ANY KEY TO CONTINUE: ";: GET Q$: PRINT Q$
  194. 2480  RETURN 
  195. 2490  IF  PEEK(222) = 6  THEN  POKE 216,0: GOTO 1800
  196. 2500  VTAB 21: PRINT "ERROR #" + STR$( PEEK(222)) +" IN PREFIX": POKE 216,0: GOSUB 3210: RUN 100
  197. 2600  REM **** DISK NO. AND TITLE ****
  198. 2610  HOME : VTAB 8: PRINT "ENTER DISK ID NO.: ";N$
  199. 2615  VTAB 8: HTAB 26: PRINT "('-' TO BLANK)"
  200. 2620  VTAB 8: HTAB 20: INPUT "";Q$:
  201. 2625  IF  LEFT$(Q$,1) =  CHR$(45)  THEN N$ = "    ": GOTO 2640
  202. 2630  IF Q$ < >""  THEN N$ = Q$
  203. 2640  VTAB 8: HTAB 20: PRINT N$:
  204. 2650  VTAB 11: PRINT "DISK TITLE IS:";: PRINT  LEFT$(T$ +"                         ",TL -6) +":";: VTAB 11: HTAB 15: INPUT "";Q$
  205. 2655  IF  LEFT$(Q$,1) =  CHR$(45)  THEN T$ = "CATALOG": GOTO 2650
  206. 2660  IF T$ = ""  AND Q$ = ""  THEN T$ = "CATALOG"
  207. 2670  IF Q$ < >""  THEN T$ = Q$
  208. 2680  VTAB 8: HTAB 15: PRINT T$
  209. 2690  NORMAL 
  210. 2700  GOTO 3420
  211. 3000  REM ****  READ DISK CATALOG  ****
  212. 3010  HOME 
  213. 3020  PRINT D$"FRE"
  214. 3030  HOME : VTAB 6: PRINT "ENTER DISK ID NO. ";N$
  215. 3040  VTAB 6: HTAB 26: PRINT "('-' TO BLANK)"
  216. 3050  VTAB 6: HTAB 19: INPUT "";Q$:
  217. 3055  IF  LEFT$(Q$,1) =  CHR$(45)  THEN N$ = "    ": GOTO 3070
  218. 3060  IF Q$ < >""  THEN N$ = Q$
  219. 3070  VTAB 6: HTAB 19: PRINT N$:
  220. 3080  VTAB 9: PRINT "INSERT DISK TO BE CATALOGED AND HIT ANY KEY.....('<' TO RE-ENTER DISK NO.,      'ESC' TO ABORT)";: GET Q$: PRINT Q$
  221. 3090  IF Q$ =  CHR$(60)  THEN Q$ = "": GOTO 3040
  222. 3100  IF Q$ =  CHR$(27)  THEN  RETURN 
  223. 3101 CA$ = "F"
  224. 3102  VTAB 14: PRINT "F>ULL CATALOG OR S>UBDIRECTORIES ONLY:";CA$; CHR$(8);: GET Q$: PRINT Q$
  225. 3104 CA$ = "F": IF Q$ = "S"  OR Q$ = "s"  THEN CA$ = "S"
  226. 3110  VTAB 17: PRINT "ENTER SLOT AND DRIVE (,S#,D#) OR VOLUME NAME TO BE CATALOGED.
  227. 3120  VTAB 20: PRINT ":";SD$
  228. 3130  VTAB 20: HTAB 2: CALL 768,NP$:NP$ = NP$ +""
  229. 3140  IF NP$ = ""  THEN NP$ = SD$
  230. 3150  VTAB 20: HTAB 2: PRINT NP$
  231. 3160  ONERR  GOTO 3180
  232. 3170  PRINT : PRINT D$"PREFIX"NP$: PRINT D$"PREFIX": INPUT NP$: GOTO 3190
  233. 3180  VTAB 21: PRINT "ERROR #" + STR$( PEEK(222)) +" IN PREFIX": POKE 216,0: GOSUB 3210: RUN 
  234. 3190  POKE 216,0: VTAB 20: HTAB 2: PRINT NP$;: CALL  -958: PRINT 
  235. 3200  GOTO 3220
  236. 3210  VTAB 23: PRINT "PRESS ANY KEY TO CONTINUE ";: GET Q$: PRINT Q$: RETURN 
  237. 3220 P1 = 1:DIR$(1) = NP$:T$ = NP$
  238. 3225  FOR I = 1 TO 10:CT(I) = 1: NEXT : FOR I = 1 TO LI:RE(I) = 0: NEXT 
  239. 3230 JD = 1:JS = 1:J = 1
  240. 3240  PRINT D$"OPEN "DIR$(P1)",TDIR"
  241. 3250  PRINT D$"READ "DIR$(P1)
  242. 3260  INPUT Q$: INPUT Q$: INPUT Q$
  243. 3270  IF CT(P1) = 1  THEN 3280
  244. 3272  FOR I = 1 TO CT(P1) -1
  245. 3274  INPUT NAME$:NAME$ = NAME$ +"": IF NAME$ = ""  THEN 3294
  246. 3276  NEXT 
  247. 3280  INPUT NAME$:NAME$ = NAME$ +"":CT(P1) = CT(P1) +1
  248. 3290  IF NAME$ = ""  THEN 3294
  249. 3292  GOTO 3300
  250. 3294  IF P1 >1  THEN P1 = P1 -1:RE(JD) = RE(JD) -1: GOTO 3390
  251. 3296  GOTO 3395
  252. 3300 TY$ =  MID$ (NAME$,18,3)
  253. 3310  IF TY$ < >"DIR"  THEN 3350
  254. 3320 CZ$ =  MID$ (NAME$,2,16): IF  RIGHT$(DIR$(P1),1) < >"/"  THEN CZ$ = "/" +CZ$
  255. 3330  IF  RIGHT$(CZ$,1) = " "  THEN CZ$ =  LEFT$(CZ$, LEN(CZ$) -1): GOTO 3330
  256. 3340 P1 = P1 +1:DIR$(P1) = DIR$(P1 -1) +CZ$:CT(P1) = 1:RE(JD +1) = RE(JD) +1
  257. 3350 CS$ = "": IF TY$ = "DIR"  THEN CS$ = "/"
  258. 3360  IF TY$ < >"DIR"  AND RE(JD +1) = 0  THEN RE(JD +1) = RE(JD)
  259. 3370 RR$ =  LEFT$((CS$ + MID$ (NAME$,2,16) +"   "),17) + MID$ (NAME$,18,22)
  260. 3371  IF CA$ = "F"  THEN R$(JD) = RR$:JD = JD +1
  261. 3372  IF CA$ = "S"  AND TY$ = "DIR"  THEN R$(JD) = RR$:JD = JD +1
  262. 3374  IF JD = LI -1  THEN  HOME : PRINT  CHR$(7); CHR$(7);"FILE LIMIT OF " + STR$(LI) +" HAS BEEN REACHED": PRINT "HIT ANY KEY TO CONTINUE AND WAIT": GET Q$: PRINT Q$: GOTO 3395
  263. 3380  IF TY$ < >"DIR"  THEN 3280
  264. 3390  PRINT D$"CLOSE ": GOTO 3240
  265. 3395  INPUT BK$
  266. 3400  PRINT D$"CLOSE"
  267. 3410 JD = JD -1:J = JD
  268. 3420  IF CT$ = "FRONT"  THEN  GOSUB 630
  269. 3430  IF CT$ = "BACK"  THEN  GOSUB 760
  270. 3440  RETURN 
  271. 3600  REM ***** DISPLAY CATALOG *****
  272. 3610  HOME 
  273. 3620  IF J = 0  THEN 3730
  274. 3630  FOR D = 0 TO J -1  STEP N%
  275. 3640  FOR F = 1 TO N%
  276. 3650  IF D +F >J  OR D +F >FI%  THEN  PRINT : GOTO 3720
  277. 3660  IF D +F = DL  THEN  INVERSE 
  278. 3670  PRINT  LEFT$(R$(D +F),11 +2 *(N% = 5) +6 *(N% = 4) +13 *(N% = 3) -13 *(COL = 40)) +"  ";
  279. 3680  NORMAL 
  280. 3690  NEXT F
  281. 3700  PRINT 
  282. 3710  NEXT D
  283. 3720  IF Q$ = "D"  THEN  VTAB 23: HTAB 5: PRINT "HIT ANY KEY TO CONTINUE ";: GET Q$: PRINT Q$
  284. 3730  RETURN 
  285. 3800  REM ***** SORTING ROUTINE *****
  286. 3810  HOME : VTAB 10: HTAB 11: PRINT "SORTING ";J;" ITEMS"
  287. 3820 L = 1:B(L) = J +1:M = 1
  288. 3830 N = B(L)
  289. 3840 I = M -1
  290. 3850  IF N -M <3  THEN 3970
  291. 3860 M1 =  INT((I +N)/2)
  292. 3870 I = I +1: IF I = N  THEN 3920
  293. 3880  IF R$(I) < = R$(M1)  THEN 3870
  294. 3890 N = N -1: IF I = N  THEN 3920
  295. 3900  IF R$(N) > = R$(M1)  THEN 3890
  296. 3910 TM$ = R$(I):R$(I) = R$(N):R$(N) = TM$: GOTO 3870
  297. 3920  IF I > = M1  THEN I = I -1
  298. 3930  IF N = M1  THEN 3950
  299. 3940 TM$ = R$(I):R$(I) = R$(M1):R$(M1) = TM$
  300. 3950 L = L +1:B(L) = I
  301. 3960  GOTO 3830
  302. 3970  IF N -M <2  THEN 4000
  303. 3980  IF R$(M) <R$(M +1)  THEN 4000
  304. 3990 TM$ = R$(M):R$(M) = R$(M +1):R$(M +1) = TM$
  305. 4000 M = B(L) +1:L = L -1: IF L >0  THEN 3830
  306. 4010  RETURN 
  307. 4400  REM ***** EDIT NAMES *****
  308. 4410  VTAB 22: CALL  -868: PRINT "CHANGE TO: ";: INPUT "";QR$
  309. 4420  IF QR$ < >""  THEN 4440
  310. 4430  GOTO 4460
  311. 4440 QR$ =  LEFT$(QR$ +"                     ",20)
  312. 4450 R$(DL) = "": FOR I = 1 TO 20:R$(DL) = R$(DL) + CHR$( ASC( MID$ (QR$,I,1)) +128): NEXT I
  313. 4460  RETURN 
  314. 4500  REM ***** NORMAL PRINT *****
  315. 4510  NORMAL 
  316. 4520  VTAB VC: POKE 1403,HC -1: POKE 36,HC -1
  317. 4530  PRINT  LEFT$(R$(DL),11 +2 *(N% = 5) +6 *(N% = 4) +13 *(N% = 3) -13 *(COL = 40)) +"  ";
  318. 4540  RETURN 
  319. 4600  REM ***** INVERSE PRINT *****
  320. 4610  INVERSE 
  321. 4620 HC =  FN A(DL -1) *(13 +2 *(N% = 5) +6 *(N% = 4) +13 *(N% = 3) -13 *(COL = 40)) +1
  322. 4630 VC =  INT((DL -1)/N%) +4
  323. 4640  POKE 1403,HC -1: POKE 36,HC -1: VTAB VC
  324. 4650  PRINT  LEFT$(R$(DL),11 +2 *(N% = 5) +6 *(N% = 4) +13 *(N% = 3) -13 *(COL = 40)) +"  ";
  325. 4660  NORMAL 
  326. 4670  RETURN 
  327. 4700  REM *** EDIT/ADD/DELETE NAMES ***
  328. 4710  TEXT 
  329. 4720  IF COL = 80  THEN  PRINT  CHR$(4)"PR#3"
  330. 4730  IF COL = 40  THEN  PRINT  CHR$(27) CHR$(17)
  331. 4740  HOME : PRINT "USE KEY: <ARROWS> TO MOVE; <D>ELETE; <E>DIT; <A>DD; <R>EWRITE; <RETURN> TO MENU"
  332. 4750  POKE 34,3
  333. 4760 DL = DL +1
  334. 4770  GOSUB 3600: GOSUB 4600
  335. 4780  VTAB 22: PRINT : PRINT J;" FILES LISTED"
  336. 4790  VTAB 21: PRINT : CALL  -868
  337. 4800  PRINT R$(DL);" ?"; CHR$(8);
  338. 4810 P =  PEEK( -16384): IF P <128  THEN 4810
  339. 4820  POKE  -16368,0: IF P >218  THEN P = P -32
  340. 4825  IF P = 136  AND DL = 1  AND J = 0  THEN  GOTO 4790
  341. 4830  IF P = 136  AND DL = 1  THEN  GOSUB 4500:DL = J: GOSUB 4600: GOTO 4790
  342. 4840  IF P = 136  AND DL >0  THEN  GOSUB 4500:DL = DL -1: GOSUB 4600: GOTO 4790
  343. 4850  IF P = 138  AND (DL +N%) <J +1  THEN  GOSUB 4500:DL = DL +N%: GOSUB 4600: GOTO 4790
  344. 4860  IF P = 138  AND (DL +N%) =  >J  THEN  GOSUB 4500:KL =  INT((DL/N% - INT(DL/N%)) *N% +.05):DL = KL +1: GOSUB 4600: GOTO 4790
  345. 4870  IF P = 139  AND (DL -N%) >0  THEN  GOSUB 4500:DL = DL -N%: GOSUB 4600: GOTO 4790
  346. 4880  IF P = 139  AND (DL -N%) < = 0  THEN  GOSUB 4500:KL =  INT((J/N% - INT(J/N%)) *N% +.05):DL = J +DL -KL -N% *(DL >KL +1) -1: GOSUB 4600: GOTO 4790
  347. 4890  IF P = 149  AND DL <J  THEN  GOSUB 4500:DL = DL +1: GOSUB 4600: GOTO 4790
  348. 4900  IF P = 149  AND DL = J  THEN  GOSUB 4500:DL = 1: GOSUB 4600: GOTO 4790
  349. 4910  IF P = 193  THEN  GOSUB 5110: GOSUB 3600
  350. 4920  IF P = 196  THEN R$(DL) = "                    ": GOSUB 4610
  351. 4930  IF P = 197  THEN  GOSUB 4400: GOSUB 3600
  352. 4935  IF P = 210  THEN  GOSUB 5000: GOTO 4770
  353. 4940  IF P = 141  THEN  GOSUB 5000: RETURN 
  354. 4950  GOTO 4780
  355. 5000  REM *** DELETE NAMES ***
  356. 5010 I = 1
  357. 5020  IF  LEFT$(R$(I),2) = "  "  THEN R$(I) = R$(I +1): VTAB 22: HTAB 39 +40 *(COL = 80): PRINT I: FOR K = I +1 TO J:R$(K) = R$(K +1): NEXT :J = J -1: GOTO 5020
  358. 5030  IF J <0  THEN J = 0: GOTO 5070
  359. 5040  IF DL >J  THEN DL = J
  360. 5050 I = I +1: IF I <J  THEN 5020
  361. 5060  IF  LEFT$(R$(J),2) = "  "  THEN J = J -1 +(J = 0): GOTO 5060
  362. 5070  RETURN 
  363. 5080  RETURN 
  364. 5100  REM ***** ADD NAMES *****
  365. 5110  VTAB 22: CALL  -868: PRINT "ADD NAME: ";: INPUT "";QR$
  366. 5120  IF QR$ < >""  THEN 5140:
  367. 5130  GOTO 5180
  368. 5140 QR$ =  LEFT$(QR$ +"                         ",20)
  369. 5150 QS$ = "": FOR I = 1 TO 20:QS$ = QS$ + CHR$( ASC( MID$ (QR$,I,1)) +128): NEXT I
  370. 5160  FOR I = J TO DL  STEP  -1:R$(I +1) = R$(I): NEXT I
  371. 5170 R$(DL) = QS$:J = J +1
  372. 5180  RETURN 
  373. 5200  REM ***** PRINT LABEL FOR ONE SIDE *****
  374. 5210  TEXT : HOME 
  375. 5220  PRINT : PRINT "PRESS RETURN TO BEGIN... ESC TO EXIT";: GET Q$: PRINT Q$
  376. 5230  IF Q$ =  CHR$(13)  THEN  GOTO 5250
  377. 5240  IF Q$ =  CHR$(27)  THEN  RETURN 
  378. 5250  ON LP GOTO 5330,5260
  379. 5255  REM   5.25-INCH DISKS - LP=2
  380. 5260  FOR A = 2 TO 6
  381. 5270 IL = J/A:IL =  INT(IL) +(IL > INT(IL))
  382. 5280  IF IL < = 13  THEN B = 30 -9 *(A = 3) -15 *(A = 4) -18 *(A = 5) -21 *(A = 6): GOTO 5390
  383. 5290  NEXT A
  384. 5300  GOTO 5610
  385. 5320  REM   3.50-INCH DISKS - LP=1
  386. 5330  FOR A = 2 TO 5
  387. 5340 IL = J/A:IL =  INT(IL) +(IL > INT(IL))
  388. 5350  IF IL < = 21  THEN B = 19 -7 *(A = 3) -10 *(A = 4) -12 *(A = 5): GOTO 5390
  389. 5360  NEXT A
  390. 5370  GOTO 5610
  391. 5390  IF PSLOT = 3  THEN  PRINT  CHR$(4)"PR#3": GOTO 5480
  392. 5400  PRINT  CHR$(4)"PR#";PSLOT
  393. 5410  GOSUB 6810
  394. 5420  IF LP = 2  THEN 5470
  395. 5430  PRINT "-": PRINT : PRINT 
  396. 5440  GOSUB 6850
  397. 5450  PRINT T$
  398. 5460  GOSUB 6830
  399. 5470  GOSUB 6820
  400. 5480  PRINT T$: IF PSLOT = 3  THEN  PRINT : GOTO 5500
  401. 5490  GOSUB 6860
  402. 5500  IF J = 0  THEN 5560
  403. 5510  FOR D = 1 TO J  STEP A:DD$ = "": FOR F = 0 TO A -1:G = D +F: IF G >J  THEN 5530
  404. 5520 E$ =  LEFT$(( LEFT$(R$(G),17) + LEFT$(BL$,15)),B) + CHR$(32) + CHR$(32):DD$ = DD$ +E$: NEXT F
  405. 5530  FOR I = 1 TO  LEN(DD$): IF  ASC( MID$ (DD$,I,1)) >31  THEN  PRINT  MID$ (DD$,I,1);
  406. 5540  NEXT I: PRINT : IF G > = J  THEN 5560
  407. 5550  NEXT D
  408. 5560  IF PSLOT = 3  THEN  VTAB 23: PRINT "HIT ANY KEY TO CONTINUE: ";: GET Q$: PRINT Q$
  409. 5570  PRINT  CHR$(12);
  410. 5580  PRINT RESET$
  411. 5590  IF PSLOT < >3  THEN  PRINT  CHR$(4);"PR#0"
  412. 5600  HOME : RETURN 
  413. 5610  HOME : VTAB 10: PRINT "SIZE OF CATALOG MUST BE LESS THAN "(5 +(LP = 2)) *(21 -8 *(LP = 2))
  414. 5700  PRINT "ENTRIES TO FIT ON LABEL": FOR N = 1 TO 5000: NEXT : RETURN 
  415. 5710  REM ***** PRINT COMBINED CATALOG *****
  416. 5720  IF LP = 2  THEN 5750
  417. 5730  VTAB 22: PRINT "ONLY FRONT SIDE OPERATIONAL FOR 3.5-INCHDISK DRIVES.  HIT ANY KEY TO CONTINUE:";: GET Q$: PRINT Q$
  418. 5740  RETURN 
  419. 5750  TEXT : HOME 
  420. 5760  PRINT : PRINT "PRESS RETURN TO BEGIN... ESC TO EXIT";: GET Q$: PRINT Q$
  421. 5770  IF Q$ =  CHR$(13)  THEN  GOTO 5790
  422. 5780  IF Q$ =  CHR$(27)  THEN  GOTO 6560
  423. 5790  FOR A = 2 TO 6
  424. 5800 LF = JF/A:LB = JB/A:IL =  INT(LF) +(LF > INT(LF)) + INT(LB) +(LB > INT(LB))
  425. 5810  IF IL < = 11  THEN B = 30 -9 *(A = 3) -15 *(A = 4) -18 *(A = 5) -21 *(A = 6): GOTO 6200
  426. 5820  NEXT A
  427. 5830  GOTO 6560
  428. 6200  REM ***** PRINT FRONT SIDE *****
  429. 6210  IF PSLOT = 3  THEN  PRINT  CHR$(4)"PR#3": GOTO 6240
  430. 6220  PRINT  CHR$(4);"PR#";PSLOT
  431. 6230  GOSUB 6810: GOSUB 6820
  432. 6240  PRINT  LEFT$( LEFT$(NF$ +"      ",6) +TF$,TL): IF PSLOT = 3  THEN  PRINT : GOTO 6260
  433. 6250  GOSUB 6860
  434. 6260  IF JF = 0  THEN 6320
  435. 6270  FOR D = 1 TO JF  STEP A:DD$ = "": FOR F = 0 TO A -1:G = D +F: IF G >JF  THEN 6290
  436. 6280 E$ =  LEFT$(( LEFT$(RF$(G),17) + LEFT$(BL$,15)),B) + CHR$(32) + CHR$(32):DD$ = DD$ +E$: NEXT F
  437. 6290  FOR I = 1 TO  LEN(DD$): IF  ASC( MID$ (DD$,I,1)) >31  THEN  PRINT  MID$ (DD$,I,1);
  438. 6300  NEXT I: PRINT : IF G > = JF  THEN 6320
  439. 6310  NEXT D
  440. 6320  PRINT 
  441. 6400  REM ***** PRINT BACK SIDE *****
  442. 6410  IF PSLOT = 3  THEN  GOTO 6430
  443. 6420  GOSUB 6830: GOSUB 6820
  444. 6430  PRINT  LEFT$( LEFT$(NB$ +"      ",6) +TB$,TL): IF PSLOT = 3  THEN  PRINT : GOTO 6450
  445. 6440  GOSUB 6860
  446. 6450  IF JB = 0  THEN 6510
  447. 6460  FOR D = 1 TO JB  STEP A:DD$ = "": FOR F = 0 TO A -1:G = D +F: IF G >JB  THEN 6480
  448. 6470 E$ =  LEFT$(( LEFT$(RB$(G),17) + LEFT$(BL$,15)),B) + CHR$(32) + CHR$(32):DD$ = DD$ +E$: NEXT F
  449. 6480  FOR I = 1 TO  LEN(DD$): IF  ASC( MID$ (DD$,I,1)) >31  THEN  PRINT  MID$ (DD$,I,1);
  450. 6490  NEXT I: PRINT : IF G > = JB  THEN 6510
  451. 6500  NEXT D
  452. 6510  VTAB 23: IF PSLOT = 3  THEN  PRINT "HIT ANY KEY TO CONTINUE: ";: GET Q$: PRINT Q$
  453. 6520  PRINT  CHR$(12);
  454. 6530  PRINT RESET$
  455. 6540  IF PSLOT < >3  THEN  PRINT  CHR$(4);"PR#0"
  456. 6550  HOME : RETURN 
  457. 6560  HOME : VTAB 10: PRINT "SIZE OF COMBINED CATALOG MUST BE LESS   THAN 66 ENTRIES TO FIT ON LABEL.": FOR N = 1 TO 5000: NEXT : RETURN 
  458. 6800  REM *** PRINTER SETUP ***
  459. 6810  PRINT RESET$;FL$;: POKE 49296,EP: RETURN : REM - POKE FOR EPSON ONLY 
  460. 6815  PRINT RESET$;: RETURN 
  461. 6820  PRINT DS$;: RETURN 
  462. 6830  PRINT CL$;: RETURN 
  463. 6840  PRINT LS$;: RETURN 
  464. 6850  PRINT SS$;: RETURN 
  465. 6860  PRINT CL$;LS$;SS$;: RETURN 
  466. 6870  PRINT CL$;SI$;: RETURN 
  467. 6880  PRINT HL$;: RETURN 
  468. 6900  REM *** LABEL SELECTION ***
  469. 6910  IF CT$ = "BACK"  THEN  RETURN 
  470. 6915 LP = LP +1 -(LP = 2) *2
  471. 6920  ON LP GOTO 6930,6940
  472. 6930 LABEL$ = "2.75-IN SQ LABELS":IW$ = "0408":EP = 17:TL = 22: GOTO 7000
  473. 6940 LABEL$ = "4 X 1.5-INCH LABELS":IW$ = "0192":EP = 8:TL = 31: GOTO 7000
  474. 7000  REM *** SET PRINTER PARAMETERS ***
  475. 7010  ON PR GOTO 8010,8210,8410,8610,8810
  476. 7020  RETURN 
  477. 7500  DATA  "EPSON W/ GRAFTRAX+","IMAGEWRITER II"
  478. 7550  DATA  "END"
  479. 8000  REM *** SET PRINT PARAMETERS FOR EPSON W/ GRAFTRAX ***
  480. 8010 PR$ = "EPSON W/ GRAFTRAX+":PR = 1
  481. 8020 RESET$ =  CHR$(27) + CHR$(64): REM RESET TO POWER UP STATE 
  482. 8030 FL$ =  CHR$(27) +"C": POKE 49296,EP: REM  SET FORM LENGTH
  483. 8040 DS$ =  CHR$(14) + CHR$(15) + CHR$(27) +"G": REM  8.25 CPI IN DOUBLE STRIKE MODE
  484. 8050 CL$ =  CHR$(18) + CHR$(20) + CHR$(27) +"F" + CHR$(27) +"T" + CHR$(27) +"H" + CHR$(27) +"2": REM RESET TO STANDARD SETTINGS
  485. 8060 LS$ =  CHR$(27) +"A" + CHR$(6): REM SET LINE SPACING AT 6/72 OF AN INCH
  486. 8070 SS$ =  CHR$(15) + CHR$(27) +"S" + CHR$(0): REM SUPERSCRIPT
  487. 8080 SI$ =  CHR$(15): REM  COMPRESSED PRINT - 16.5 CPI
  488. 8085 HL$ =  CHR$(14): REM   5 CPI HEADLINE
  489. 8090  RETURN 
  490. 8200  REM *** SET PRINT PARAMETERS FOR IMAGEWRITER II ***
  491. 8210 PR$ = "IMAGEWRITER II":PR = 2
  492. 8220 RESET$ =  CHR$(27) + CHR$(99): REM RESET TO POWER UP STATE
  493. 8230 FL$ =  CHR$(27) +"H" +IW$: REM FORM LENGTH
  494. 8240 DS$ =  CHR$(14) + CHR$(27) +"Q": REM  8.5CHARS / INCH
  495. 8250 CL$ =  CHR$(15) + CHR$(27) +"E" + CHR$(27) +"z" + CHR$(27) +"A": REM CLEAR SPECIAL PRINTING
  496. 8260 LS$ =  CHR$(27) +"T" +"12": REM SET LINE SPACING AT 12/144 OF AN INCH
  497. 8270 SS$ =  CHR$(27) +"Q" + CHR$(27) +"x": REM CONDENSED SUPERSCRIPT
  498. 8280 SI$ =  CHR$(27) +"Q": REM   COMPRESSED PRINT - 17 CPI
  499. 8285 HL$ =  CHR$(14): REM   HEADLINE
  500. 8290  RETURN 
  501. 10000  PRINT : PRINT " Select An Option .... Esc to Exit"
  502. 10010  PRINT : PRINT "1) Print to Printer"
  503. 10012  PRINT "2) Print to File /HAWKE/APPLEWORKS/PICS"
  504. 10014  PRINT "3) Print to File /HAWKE/APPLEWORKS/SOUND"
  505. 10016  PRINT "4) Print to File /HAWKE/APPLEWORKS/DEVELOP"
  506. 10018  PRINT "5) Print to File /HAWKE/APPLEWORKS/PRODUCT"
  507. 10020  PRINT "6) Print to File /HAWKE/APPLEWORKS/GAMES"
  508. 10022  PRINT "7) Print to File /HAWKE/APPLEWORKS/EDUC"
  509. 10024  PRINT "8) Print to File /HAWKE/APPLEWORKS/FONTS"
  510. 10026  PRINT "9) Print to File /HAWKE/APPLEWORKS/MISC"
  511. 10028  PRINT "          Select :";: GET Q$
  512. 10030  IF Q$ = "1"  THEN  RETURN 
  513. 10032  IF Q$ =  CHR$(27)  THEN  POP : RETURN 
  514. 10034  IF Q$ <"1"  THEN  POP : GOTO 12010
  515. 10036  IF Q$ >"9"  THEN  POP : GOTO 12010
  516. 10038  POP : GOTO 13000
  517. 12000  REM  *** LIST CATALOG TO 8.5X11PAPER ***
  518. 12010  TEXT : HOME : PRINT D$"FRE"
  519. 12020  GOSUB 10000
  520. 12050  PRINT : PRINT "INPUT DESCRIPTIVE TITLE: ": INPUT DP$
  521. 12060  FOR A = 1 TO 3
  522. 12070 IL = J/A:IL =  INT(IL) +(IL > INT(IL))
  523. 12080  IF IL < = 50  THEN B = A: GOTO 12100
  524. 12090  NEXT A: GOTO 12610
  525. 12100  IF PSLOT = 3  THEN  PRINT  CHR$(4)"PR#3": GOTO 12480
  526. 12110  PRINT  CHR$(4)"PR#";PSLOT
  527. 12460  FOR I = 1 TO 3: PRINT : NEXT 
  528. 12470  GOSUB 6830: GOSUB 6880
  529. 12480  PRINT "  " + LEFT$( LEFT$(N$ +"      ",6) +T$,TL): PRINT : IF PSLOT = 3  THEN 12500
  530. 12483 LD$ = "(5.25-INCH DISK)": IF LP = 1  THEN LD$ = "(3.5-INCH DISK)"
  531. 12485  GOSUB 6830: PRINT "  " +DP$;: IF PSLOT = 3  THEN 12500
  532. 12486  GOSUB 6830: POKE 36,65: PRINT LD$: PRINT 
  533. 12490  GOSUB 6870: HTAB 8
  534. 12500  FOR I = 1 TO B: PRINT "NAME" + LEFT$(BL$,18)"TYPE  BLKS  DATE     ";: NEXT : PRINT : PRINT 
  535. 12505 KK = J: IF B >1  THEN KK = 51
  536. 12510  FOR I = 1 TO KK
  537. 12520  PRINT "  " + LEFT$(BL$,1 +2 *RE(I)) + LEFT$(R$(I),17 -2 *RE(I)) +"      " + MID$ (R$(I),18,5) + MID$ (R$(I),26,5) + MID$ (R$(I),34,6);
  538. 12530  IF B >1  AND (I +50) <J  THEN M = I +50: GOSUB 12540
  539. 12535  IF B >2  AND (I +100) <J  THEN M = I +100: GOSUB 12540
  540. 12536  IF B >3  THEN 12570
  541. 12537  PRINT : NEXT : PRINT : PRINT  LEFT$(BK$,39): GOTO 12560
  542. 12540  PRINT "  " + LEFT$(BL$,1 +2 *RE(M)) + LEFT$(R$(M),17 -2 *RE(M)) +"      " + MID$ (R$(M),18,5) + MID$ (R$(M),26,5) + MID$ (R$(M),34,6);: RETURN 
  543. 12560  IF PSLOT = 3  THEN  VTAB 23: PRINT "HIT ANY KEY TO CONTINUE: ";: GET Q$: PRINT Q$
  544. 12570  PRINT  CHR$(12);
  545. 12580  PRINT RESET$
  546. 12590  IF PSLOT < >3  THEN  PRINT  CHR$(4);"PR#0"
  547. 12600  HOME : RETURN 
  548. 13000  IF Q$ = "2"  THEN Q$ = "/HAWKE/APPLEWORKS/Pics": GOTO 14000
  549. 13001  IF Q$ = "3"  THEN Q$ = "/HAWKE/APPLEWORKS/Sound": GOTO 14000
  550. 13002  IF Q$ = "4"  THEN Q$ = "/HAWKE/APPLEWORKS/Develop": GOTO 14000
  551. 13003  IF Q$ = "5"  THEN Q$ = "/HAWKE/APPLEWORKS/Product": GOTO 14000
  552. 13004  IF Q$ = "6"  THEN Q$ = "/HAWKE/APPLEWORKS/Games": GOTO 14000
  553. 13005  IF Q$ = "7"  THEN Q$ = "/HAWKE/APPLEWORKS/Educ": GOTO 14000
  554. 13006  IF Q$ = "8"  THEN Q$ = "/HAWKE/APPLEWORKS/Fonts": GOTO 14000
  555. 13008  IF Q$ = "9"  THEN Q$ = "/HAWKE/APPLEWORKS/Misc": GOTO 14000
  556. 14000  PRINT  CHR$(4)"open "Q$: PRINT  CHR$(4)"append "Q$: PRINT  CHR$(4)"write "Q$
  557. 14010  FOR I = 1 TO J
  558. 14020  PRINT  LEFT$(R$(I),17 -2 *RE(I)): PRINT  MID$ (R$(I),18,5): PRINT  MID$ (R$(I),26,5): PRINT  MID$ (R$(I),31,9)
  559. 14030  PRINT T$: PRINT  MID$ (Q$,19): NEXT I: PRINT  CHR$(4)"close "Q$
  560. 14040  RETURN